package main.problemstruktur;

import java.util.ArrayList;

public class Knoten {
	final ArrayList<ArrayList<Zeitintervall>> zeiten;
	final int id;
	final int dauer;

	public Knoten(ArrayList<Zeitintervall> nodeZeiten, int id, int dauer,
			int anzahlBereiche) {
		this.zeiten = new ArrayList<ArrayList<Zeitintervall>>();
		for (int i = 0; i < anzahlBereiche; i++) {
			this.zeiten.add(new ArrayList<Zeitintervall>());
		}
		for (Zeitintervall zeitintervall : nodeZeiten) {
			zeiten.get(zeitintervall.getBereich()).add(zeitintervall);
		}
		this.id = id;
		this.dauer = dauer;
	}

	public boolean getBereichVorhanden(int bereich) {
		if (zeiten.get(bereich).size() == 0) {
			return false;
		}
		return true;

	}

	public int getId() {
		return id;
	}

	public int getTimeToIntervall(int bereich, int zeit) {
		if (!getBereichVorhanden(bereich))
			return -1;
		int min = Integer.MAX_VALUE;
		for (Zeitintervall intervall : zeiten.get(bereich)) {
			if (intervall.getTimeToIntervall(zeit) < min)
				min = intervall.getTimeToIntervall(zeit);
		}
		if (min == Integer.MAX_VALUE)
			return -1;
		return min;
	}

	public int getDauer() {
		return dauer;
	}
}
